package com.expert.miniapp.dao;

import lombok.Data;
import jakarta.persistence.*;
import com.fasterxml.jackson.annotation.JsonProperty;

/**
 * 实验室实体类
 * 对应数据库表：laboratory
 */
@Data
@Entity
@Table(name = "laboratory")
public class Laboratory {
    
    /**
     * 实验室唯一标识（主键）
     */
    @Id
    @Column(name = "lab_id", length = 20, nullable = false)
    @JsonProperty("laboratoryId")
    private String labId;
    
    /**
     * 实验室名称
     */
    @Column(name = "name", length = 100)
    @JsonProperty("name")
    private String name;
    
    /**
     * 研究领域
     */
    @Column(name = "research_areas", columnDefinition = "TEXT")
    @JsonProperty("researchAreas")
    private String researchAreas;
    
    /**
     * 贡献成果
     */
    @Column(name = "contributions", columnDefinition = "TEXT")
    @JsonProperty("contributions")
    private String contributions;
    
    /**
     * 分类标签
     */
    @Column(name = "categories", length = 50)
    @JsonProperty("categories")
    private String categories;
    
    /**
     * 标签
     */
    @Column(name = "tags", length = 100)
    @JsonProperty("tags")
    private String tags;
    
    /**
     * 所属机构
     */
    @Column(name = "organization", length = 60)
    @JsonProperty("organization")
    private String organization;
    
    /**
     * 所在城市
     */
    @Column(name = "city", length = 30)
    @JsonProperty("city")
    private String city;
    
    /**
     * 摘要
     */
    @Column(name = "summary", length = 200)
    @JsonProperty("summary")
    private String summary;
    
    /**
     * 详细介绍
     */
    @Column(name = "introduction", columnDefinition = "TEXT")
    @JsonProperty("introduction")
    private String introduction;
    
    /**
     * 显示权重
     */
    @Column(name = "display_weight")
    @JsonProperty("displayWeight")
    private Integer displayWeight;
    
    /**
     * 图片URL
     */
    @Column(name = "image_url", length = 500)
    @JsonProperty("imageUrl")
    private String imageUrl;
}